models基本使用
models是数据库的一个api,通过modles模拟数据库的增删改查
Django有一个sqllit的工具方便打我们进行学习测试
新建表
编辑models,创建表结构
from django.db import models# Create your models here.class UserInfo(models.Model): username=models.CharField(max_length=32,null=True) password=models.CharField(max_length=32,null=True)
在终端中执行
python manage.py makemigrationspython manage.py migrate
若makemigrations 和 migrate之后生成的sqlite没有表
选择driver,在之后出现的界面安装即可
正常操作后即可生成表(会额外生成一些Django自带表)
将db.sqlite3拖到右侧就可查看
双击打开就可以进行编辑操作
从数据库中读取数据
编辑之前views中定义的login函数
views中函数通过models读数据的时候,如果取的数据是多个数据,就会返回一个list
from django.shortcuts import render,redirect,HttpResponsefrom myapp import models '''import models模块'''# Create your views here.def login(request): if request.method == 'GET': obj_li = models.UserInfo.objects.all() for obj in obj_li: print ('username : ',obj.username) print ('password : ',obj.password) return render(request,'login.html',{'aaa':obj.username,'bbb':obj.password}
return render(request,'login.html',{'aaa':obj,'bbb':obj_li})
我们返回一下obj 和obj_li看一下
obj_li = models.UserInfo.objects.all() \\查询所有obj_li = models.UserInfo.objects.filter(username = 'zx') \\查询,相当于sql语句的where,返回querysetl
基本命令
Django基本命令
1、创建一个django project
django-admin.py startproject mysite
2、在mysite目录下创建应用,比如blog:
python manage.py startapp blog
3、启动django项目
默认8000端口
python manage.py runserver 8080
4、同步更改数据库表或字段
python manage.py syncdb
注意:Django 1.7.1 及以上的版本需要用以下命令python manage.py makemigrationspython manage.py migrate
这种方法可以创建表,当你在models.py中新增了类时,运行它就可以自动在数据库中创建表了,不用手动创建。 5、清空数据库
python manage.py flush
此命令会询问是 yes 还是 no, 选择 yes 会把数据全部清空掉,只留下空表。
6、创建超级管理员
python manage.py createsuperuser
# 按照提示输入用户名和对应的密码就好了邮箱可以留空,用户名和密码必填# 修改 用户密码可以用:
python manage.py changepassword username
7、Django 项目环境终端
python manage.py shell
8、Django 项目环境终端
python manage.py dbshell
9、更多命令
python manage.py
10 static配置
#3、STATIC文件还可以配置STATICFILES_DIRS,指定额外的静态文件存储位置。 # STATIC_URL的含义与MEDIA_URL类似。
# ----------------------------------------------------------------------------#注意1: #为了后端的更改不会影响前端的引入,避免造成前端大量修改 STATIC_URL = '/static/' #引用名 STATICFILES_DIRS = ( os.path.join(BASE_DIR,"statics") #实际名 ,即实际文件夹的名字 ) #django对引用名和实际名进行映射,引用时,只能按照引用名来,不能按实际名去找 # #------error-----不能直接用,必须用STATIC_URL = '/static/': ##注意2(statics文件夹写在不同的app下,静态文件的调用): STATIC_URL = '/static/' STATICFILES_DIRS=( ('hello',os.path.join(BASE_DIR,"app01","statics")) , ) ##注意3: STATIC_URL = '/static/' {% load staticfiles %} #